UE5 WorldPartitionとSubLevelの比較 ※プロジェクト配布あり
この記事はUnreal Engine (UE) Advent Calendar 2024の4日目の記事です。
どうもお久しぶりです。とても久し振りの記事を書いております。Advent Calendearの時期なので、記事を久し振りに書くことにしました。
今回はUE5から導入されているレベル運用のシステムであるWorld Partition方式とSub Level方式の2つについての比較を実際に作成したプロジェクトをベースにして紹介したいと思います。
今回のプロジェクトはGitHub上にアップロードしておりますので、以下からDLしてみてください。
環境はUE5.5.0にて作成しております。
- レベル運用システム
- SubLevel方式
- WorldPartition方式
- LevelInstance & DataLayer
- Is Spatially Loaded
- まとめ
UE5 Character Mover 2.0とは
UE5.4のPreview 1がでました。
様々な新機能があり、全てを把握するのは大変ですが、今回はこの中でもゲームプレイに大きく影響しそうな機能をひとつ紹介します。
それはCharacter Mover 2.0という新機能です。
Character Mover 2.0 (Experimental)
この機能は既にUEに存在するCharacter Movement Componentを全て作り直し、新設計された仕組みです。物理やアニメーションやネットワークに関する設計をより合理的に行うために全て刷新するとのことです。
特徴としては…
- Characterクラスだけではなく、全てのActorクラスをサポート
- ネットワークの複雑さを意識せずにキャラの動きの部分に集中できるようにする
- 拡張性とカスタマイズ性を高めてプログラマー以外でも動きを作成できるようにする
- 物理シミュレーションでのオブジェクトのインタラクション性を高める
- 汎用的なロールバックネットワークモデルをサポートする
などが特徴となっています。
全てのActorクラスをサポートしてくれるのは嬉しいですね。他にも物理シミュレーションとのインタラクション性を高めてくれたり、ロールバックネットワークモデルをサポートするなど、ネットワークゲームでの影響はかなり大きくなりそうです。
続きを読むUE5 Characterクラスを使わずにPawnでキャラを実装してみる
UE5のCharacterクラスはとても便利であり、非常に汎用的に作られています。おそらくUE経験者でCharacterクラスを使わずにキャラを実装したことがない人はほぼいないのではないでしょうか。しかし様々な事情によってはCharacterクラスを使えないこともあります。
例えば負荷の問題。Characterクラスは汎用的に作られている故に、CPUに対する負荷はかなり高いものとなっています。他にもコリジョンの形状をカプセル以外にしたいという要望もあると思います。簡単なキャラクターを実装したいのに、Characterクラスでは機能が過剰にオーバーしていたりするので、少しでも軽量な、そしてシンプルなキャラクターを実装したいとうニーズはあるはず。
今回はPawnクラスを使ってUE5標準のサードパーソンキャラクターに近いものを実装してみるというお題でいってみましょう。
以下はUnreal EngineとPawnクラスとCharacterクラスに対する公式の資料となります。
続きを読むUE5 実践的で汎用的なアニメーションシステム設計について
この記事はUnreal Engine (UE) Advent Calendar 2023の25日目の記事です。
Advent Calendar最終日となる本日は2023年におけるUE5の時代でも使える実践的かつ汎用的なアニメーションシステムの設計についての話をします。UEにおけるアニメーションと言えば、Animation Blueprint(以下ABP)を使ってステートマシンでAnimation Sequence(以下AS)を再生するわけですが、当然ながら大きくなりすぎるとキャラクター数が増えれば増えるとほど破綻していってしまいます。
大規模なプロジェクトではキャラクターが増えてもある程度汎用的に運用できるような設計を求められるわけですが、実際のところどのように作っているかはわかりにくいので、なるべく具体例に沿って解説していきたいと思います。
続きを読むUE5 モジュール追加後にヘッダーファイルを認識させる方法
今回は自分が少し前にハマった内容で、一般的にはUnreal EngineでC++を書いておられる方には常識かもしれませんが、自分にとっての備忘録として残しておきます。また題名にはUE5とつけておりますが、基本的にはUE4環境下においても同様なはずです。
Unreal Engineにはモジュールシステムというものが存在しており、これは本来のC++には存在していない仕組みです。Unreal Engineのモジュールシステムの説明は公式ドキュメントもありますが、ヒストリアさんの記事が基本的な内容は理解しやすいです。
このモジュールについて、追加したり、参照したりするだけでも色々なルールが存在し、そのルールを知らないとC++経験者でもハマってしまうことが多々あります。というわけで今回はモジュール追加後にヘッダーファイルをなぜか認識しない時の対処方法です。
続きを読むUE5 "Master"などの英単語を含む機能が非推奨化されていく件
今回はUE5そのものの機能ではなく、UE5内で使われている特定の英単語についての話をします。
昨今では世界的に大きく問題となっているポリコレ(ポリティカル・コレクトネス)ですが、UE5においても大きく影響が進んでいます。
コーディング規約を読むと、『インクルーシブな言葉の選択』という項目があり、具体的にどういうところに気をつければ良いのかが記載されています。今回UE5になってから変更された機能を紹介してみます。
続きを読む